﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WMM.Tapioca.Taxonomy;
using WMM.Tapioca.Linkbase;

namespace WMM.Tapioca.XbrlDimension
{
    /// <summary>    
    ///     A consecutive relationship set is the set of relationships starting at an all or notAll relationship,
    /// and following all subsequent consecutive relationships .
    ///     A set of relationships constructed by traversing relationships not only within base sets but 
    /// across base sets, thus possibly including relationships from extended-type links with different
    /// roles, and relationships with different arc roles.
    /// </summary>
    public class DimensionalRelationshipSet
    {
        private string drsRole;

        /// <returns> Extended link role of this DRS. </returns>
        public virtual string DRSRole
        {
            get
            {
                return drsRole;
            }
            set
            {
                drsRole = value;
            }
        }

        private List<ConsecutiveRelationshipsSet> consecutiveRelationshipsSets;

        /// <summary>
        /// Represents a list of ConsecutiveRelationshipsSet.
        /// </summary>
        public List<ConsecutiveRelationshipsSet> ConsecutiveRelationshipsSets
        {
            get { return consecutiveRelationshipsSets; }
            set { consecutiveRelationshipsSets = value; }
        }

        private HashSet<Arc> arcRelationshipSet;

        public HashSet<Arc> ArcRelationshipSet
        {
            get { return arcRelationshipSet; }
            set { arcRelationshipSet = value; }
        }

        /// <summary>
        /// The constructor.
        /// </summary>
        public DimensionalRelationshipSet()
        {
            consecutiveRelationshipsSets = new List<ConsecutiveRelationshipsSet>();
            arcRelationshipSet = new HashSet<Arc> ();
        }


    }
}
